iT邦幫忙

2022 iThome 鐵人賽

DAY 23
2
AI & Data

先別急著學 Python | The Secret to Success in Python系列 第 23

Ɖ23-溫沙拉/ 簡單 Pandas 匯出報表至 Excel

  • 分享至 

  • xImage
  •  

成功打印出樞紐分析表後 Pivot Table Print

提及了如何利用 get_level_values 來使工作自動化,我們也利用了 xs 函數來進階了解如何進一步分析樞紐分析的橫切面內容,今天這篇文章所要介紹的是如何利用 XlsxWriter 的 Model 來自訂 Pandas to_excel 的函數操作。

自行定義 XlsxWriter 呈現

Pandas 輸出 DataFrame 到 Excel 非常容易。而在自定義輸出和使用 Excel 的功能的選擇卻有限。如何使用XlsxWriter 和 Pandas 來簡單製作出複雜的 Excel 工作表?

簡單自定義輸出

在使用前我們需要 import xl_rowcol_to_cell 這個 Library,並且讀取資料。

from xlsxwriter.utility import xl_rowcol_to_cell

df = pd.read_excel("df-comp-datav.xlsx")
df.head()

https://ithelp.ithome.com.tw/upload/images/20221007/20140740G0LgiiYZGU.png

並且,我們可以在上面利用 assign() 方法做基本運算,如以下範例,最後輸出看結果。

df = df.assign(total=(df['Jan'] + df['Feb'] + df['Mar']))
df = df.assign(quota_pct=(1+(df['total'] - df['quota'])/df['quota']))
df.head()

https://ithelp.ithome.com.tw/upload/images/20221007/2014074071vGYAF4aa.png

ok 目前看來一切都好,我們再來利用 xlsxwriter 搭配 ExcelWriter 把結果匯出為資料,並且將它儲存為 excel, 這邊把檔案命名為 df-comp-datav-out。

writer_orig = pd.ExcelWriter('df-comp-datav-out.xlsx', engine='xlsxwriter')
df.to_excel(writer_orig, index=False, sheet_name='report')
writer_orig.save()

複雜自定義輸出

我們根據上面步驟利用 assign 方法來新增了 total 和 quota_pct ,在新增後你可能會注意到:

  • 列的寬度使它很難看到所有的數據
  • 銷售額和百分比沒有以美元或百分比的形式表示。
  • 沒有總合資訊。

因此下一篇我們會介紹自定義化的欄目大小與內容。

謝謝大家的觀看,但歷史的痕跡會持續下去

今年沒組團,每一筆一字矢志不渝的獻身精神都是為歷史書寫下新頁,有空的話可以走走逛逛我們去年寫的文章。


Hi'Jerry均

Jerry 據說是個僅佔人口的 4% 人口的 INFP 理想主義者,總是從最壞的生活中尋找最好的一面,想方設法讓世界更好,內心的火焰和熱情可以光芒四射,畢業後把人生暫停了半年,緩下腳步的同時找了份跨領域工作。偶而散步、愛跟小動物玩耍。曾立過很多志,最近是希望當一個有夢想的人。

謝謝你的時間「訂閱,追蹤和留言」都是陪伴我走過 30 天鐵人賽的精神糧食。


上一篇
Ɖ22-溫沙拉/ 進階樞紐匯出報表
下一篇
Ɖ24-溫沙拉/ 自定義欄目大小與內容
系列文
先別急著學 Python | The Secret to Success in Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言